//#pragma once
#ifndef __MYSTDIO_H__
#define __MYSTDIO_H__

#include <string.h>

#define SIZE 1024

// 这种操作是不太正确的，C标准库里一定是要对底层文件类型做识别的，以此来决定刷新策略
#define FLUSH_NOW 1
#define FLUSH_LINE 2
#define FLUSH_ALL 4

typedef struct IO_FILE
{
    int _fileno; // fd
    int _flag; // 刷新方式，我们这里只能人为去写
    //char _inbuffer[SIZE]; // 输入缓冲区
    //int _in_pos;
    char _outbuffer[SIZE]; // 输出缓冲区
    int _out_pos; // 输出缓冲区的有效字符个数，也就是下一个要写入的下标
}_FILE;

_FILE * _fopen(const char *filename, const char *flag);
int _fwrite(_FILE *fp, const char *s, int len);
void _fclose(_FILE *fp);
//int _fflush(_FILE *fp);

#endif


